package com.atguigu.reducejoin;

import org.apache.hadoop.io.WritableComparable;
import org.apache.hadoop.io.WritableComparator;

/*
    自定义分组：
    1.如果不指定分组方式，那么分组方式和排序方式相同。
    2.自定义一个类并继承WritableComparator
    3.调用父类构造器
    4.重写compare(WritableComparable a, WritableComparable b)
 */
public class MyGroup extends WritableComparator {
    public MyGroup(){
        /*
        WritableComparator(Class<? extends WritableComparable> keyClass,boolean createInstances)
        keyClass : key的运行时类
        createInstances ： 是否创建实例（必须创建）
         */
        super(OrderBean.class,true);
    }

    /*
        在该方法中指定分组的方式
     */
    @Override
    public int compare(WritableComparable a, WritableComparable b) {
        //向下转型
        OrderBean o1 = (OrderBean) a;
        OrderBean o2 = (OrderBean) b;
        return o1.getPid()-o2.getPid();//按照pid排序就是按照pid分组
    }
}
